home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / Rolling.cpp < prev    next >
C/C++ Source or Header  |  2000-01-16  |  759b  |  36 lines

  1. #include "stdafx.h"
  2.  
  3. cRolling::cRolling(int _x, int _y, cProperties *_orig)
  4.         : cWeapon(_x, _y, _orig, "MOVING")
  5.     move_object_after_hit = FALSE;
  6. }
  7.  
  8. cRolling::~cRolling()
  9. {
  10. }
  11.  
  12. int cRolling::control()
  13.     cWeapon::control();
  14.     
  15.     bounce_on_boundaries();
  16.     
  17.     // Rotate
  18.     
  19.     if (circle_bounds != 0)
  20.         set_rotation_angle(get_rotation_angle() - 41 * vx * roll_timer.delta() / circle_bounds->radius);
  21.     
  22.     // Kill object if we hit something or when we are in water
  23.     
  24.     return !((abs(vx) > (fix)5 || !resting) && check_radial_hit_one(circle_bounds)) && !in_water();
  25. }
  26.  
  27. void cRolling::hit(fix dir, cWeapon *w)
  28. {
  29.     // Push if weapon has push power
  30.     
  31.     if (w->push_power > 0 || w->instant_push_speed > (fix)0)
  32.         add_angular_speed(50, dir);
  33. }
  34.